Skip to content

[Storage] HttpRange replacement, Etag model replacement#42619

Merged
catalinaperalta merged 10 commits intofeature/blob-tsp-rustfrom
vincenttran/fix_ranges
Apr 27, 2026
Merged

[Storage] HttpRange replacement, Etag model replacement#42619
catalinaperalta merged 10 commits intofeature/blob-tsp-rustfrom
vincenttran/fix_ranges

Conversation

@vincenttran-msft
Copy link
Copy Markdown
Member

No description provided.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2026

Next Steps to Merge

Important checks have failed. As of today they are not blocking this PR, but in near future they may.
Addressing the following failures is highly recommended:
  • ⚠️ The check named SDK Validation Status has failed. Refer to the check in the PR's 'Checks' tab for details on how to fix it and consult the aka.ms/ci-fix guide
If you still want to proceed merging this PR without addressing the above failures, refer to step 4 in the PR workflow diagram.

Comment generated by summarize-checks workflow run.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2026

API Change Check

APIView identified API level changes in this PR and created the following API reviews

Language API Review for Package
TypeSpec Storage.Blob
Python azure-storage-blob

Comment generated by After APIView workflow run.

@jalauzon-msft jalauzon-msft marked this pull request as ready for review April 24, 2026 20:20
Comment on lines +704 to +707
...IfModifiedSinceParameter,
...IfUnmodifiedSinceParameter,
...IfNoneMatchParameter,
...IfMatchParameter,
Copy link
Copy Markdown
Member

@catalinaperalta catalinaperalta Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the headers in the Azure.Core.ConditionalRequestHeaders not typed with etag? That's the reason for this update?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll open an issue to get this fixed in the azure.core types

Copy link
Copy Markdown
Member

@catalinaperalta catalinaperalta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes seem benign to me, I looked through client.tsp and the languages seem to be changing the conditional header types back to string from etag anyways for other instances. cc @l0lawrence @jeremymeng @gracewilcox @jorgerangel-msft

Copy link
Copy Markdown
Member

@catalinaperalta catalinaperalta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vincenttran-msft please fix the typespec validation error before merging into the base branch

@catalinaperalta catalinaperalta merged commit fa6985a into feature/blob-tsp-rust Apr 27, 2026
27 of 38 checks passed
@catalinaperalta catalinaperalta deleted the vincenttran/fix_ranges branch April 27, 2026 19:00
lmazuel added a commit that referenced this pull request Apr 27, 2026
* Move to Private Date header for set/get_tags, set_properites, get_account_info (#36677)

* [Storage] Make `metadata` a parameter for `set_metadata` API, StorageServiceProperties renamed to BlobServiceProperties `.tsp` (#36791)

* [Storage] @Xml.name("ObjectReplicationMetadata") -> Xml.name("OrMetadata") (#36839)

* [Storage] `upload_blob_from_url` TypeSpec Changes (#36847)

* Attempt to generate sub-client

* Revert "Attempt to generate sub-client"

This reverts commit 373ce2b.

* [Storage] `find_blobs_by_tags` for BlobServiceClient&BlobContainerClient TypeSpec Changes (#37182)

* [Storage] `v0.5.0` Rust Blobs SDK Release Prep TypeSpec  (#37428)

* [Storage] Add `StorageErrorCode` enum to TypeSpec def (#37542)

* [Storage] Flattened Storage Clients TypeSpec Definition (#37830)

* [Storage] `get/set_access_policy` TypeSpec Changes (#38633)

* Privatize the response headers date and legalhold status (#38817)

* [Storage] `get/set_access_policy` TypeSpec Changes 2 (#38933)

* [Storage] `delete/set_immutability_mode` for BlobClient TypeSpec Changes (#38750)

* [Storage] `undelete` for BlobClient TypeSpec Changes (#39068)

* [Storage] `content_length` -> `size` for PageBlobClient `create` API (#39097)

* [Storage] Snapshot and Versioning Blob Support TypeSpec Changes (#39178)

* [Storage] Use Common `Date` Header in Code Generation for Blobs SDK TypeSpec Changes (#39562)

* nits

* bring back commented out for other packages

* [Storage] Housekeeping TypeSpec Changes (#40040)

* Apply route fixes from main (fix paths #40011)

* [Storage] Thinner handwritten convenience layer changes for `azure_storage_blob` (#40134)

* regen the swagger (#40323)

Co-authored-by: catalinaperalta <[email protected]>

* [Storage] Post Storage releases TypeSpec Changes (#40370)

* Move client definition to client.tsp  (#40409)

* fix client def

* clean up

* suppressions

---------

Co-authored-by: catalinaperalta <[email protected]>

* fix template (#40450)

Co-authored-by: catalinaperalta <[email protected]>

* [Storage] Move to all `client.tsp` transforms post `v0.35` emitter TypeSpec Changes (#40558)

* add content-type header (#40497)

Co-authored-by: catalinaperalta <[email protected]>

* fix tags property definition (#40569)

Co-authored-by: catalinaperalta <[email protected]>

* fix xml tag for blob tags property on BlobItem (#40600)

Co-authored-by: catalinaperalta <[email protected]>

* correct xml name for ContainerProperties.eTag to match response payload (#40519)

* fix SignedIdentifier and AccessPolicy properties (#40711)

Co-authored-by: catalinaperalta <[email protected]>

* sync main error definition with rust branch (#40830)

Co-authored-by: catalinaperalta <[email protected]>

* etag type update (#40726)

Co-authored-by: catalinaperalta <[email protected]>

* point to optional variant since we want to have ocnsistency with typespec_client_core (#40707)

* set_metadata 1 (#40868)

* Blob fix container item "deleted" property name (#40991)

* fix name

* regen the swagger

* keep old name for rust

* remove name customization

* nit

---------

Co-authored-by: catalinaperalta <[email protected]>

* Misc fixes for blobs rust branch (#40520)

* fix metadata headers

* fix route

* override setMetadata

* only rust

* add blob override for set metadata

---------

Co-authored-by: catalinaperalta <[email protected]>

* add missing error codes (#41055)

Co-authored-by: catalinaperalta <[email protected]>

* Fix parquet config (#41087)

* fix xml name

* regen the swagger

---------

Co-authored-by: catalinaperalta <[email protected]>

* Rename submitBatch header property multipartContentType to contentType (#40812)

* Rename submitBatch response header property multipartContentType to contentType

* rename request header property too

* Add statusCode of 202 for submitBatch response (#40873)

* redo (#40935)

* missed (#41077)

* Fix container acl body to be optional (#41131)

* update container acl

* make content-type optional due to no body

---------

Co-authored-by: catalinaperalta <[email protected]>

* [Storage] Move `client.tsp` to `routes.tsp` when possible (#41387)

* Move 7 full client renames from client.tsp to just doing it in models, then tsp compile .

* not sure where content_crc64 went since it was there previous iterations?, bring back override since routes is now service-aligned fully

* literal renames, not clientName

* fix overeager blockid versionid and filterexp

* revert immutability_policy_expiry rename

* one more

* remove note from models, move to routes

* Split BlobPublicAccess (#41542)

* Split ExpiryTimeHeader (#41541)

* STG102 Blobs TypeSpec (#40916)

* Added STG102 TypeSpec version (#40544)

* Added STG102 TypeSpec version

* updated generated_blob version

* Object-Level Blob Smart Tier (TypeSpec) (#40753)

* Smart Tier TypeSpec

* tsp compile

* tsp format

* Added the @added decorator

* tsp format

* Pinned Rust to STG101 API version

* tsp compile

---------

Co-authored-by: Sean McCullough <[email protected]>

* xml.Name CorsRule (#41819)

* Misc fixes (#41676)

* fix warnings

* regen the swagger

* suppress warning

* regen the swagger

* format

---------

Co-authored-by: catalinaperalta <[email protected]>

* Generating more language for Blobs Storage with TypeSpec (#39880)

* tspconfig python

* [storage] enable typescript codegen

* Add JavaScript client names for UserDelegationKey and GeoReplication

* more client renames for JavaScript

* Update name

* Legacy.disablePageable for python

* remove disablePageable supported cross land

* initial go customization

* [JS] rename Logging.delete to Logging.deleteProperty for compat

* [JS] use alternative type of string for rfc3339-fixed-width properties

* python client.tsp renames + acces type change

* more python rename

* fix paths

* more path fixes

* altype for blockId -- generating as serialized bytearray was prev string

* add disablePaging for python

* disable pageable for js

* rename eTag => etag for JS

* re-arrange submitBatch parameters to be consistent between Service and Container

* clientOption for python

* fix metadata headers

* js multipart content type fix

* metadata alternate result type for js and python

* js: include-headers-in-response: true

* add js to @@clientoption includeRootSlash false

* rename some paging properties for JS

* python renames

* update client.tsp for one client

* JS: use string type for UserDelegationKey signedStart and signedExpiry

to maintain compat

* JS: renames

Metrics.includeApis => includeAPIs for compat

LeaseDurationResponseHeader duration to leaseDuration

access to blobPublicAccess

* move js alternateType to client.tsp

* clean up sharedRoute

* etag clientname for python

* delete->deleted

* go specification

* userdelegationkey changes python

* blockName string in python oldgen

* JS: rename MaxResultsParameter.maxresults to maxPageSize

* JS: rename some "*Md5" to "*MD5" for compat

* JS: rename rangeGetContentMd5

and auto-format done by VS Code

* JS: enable errorCode from header

* override setImmutabilityPolicy

* enable csharp generation (#40485)

* more go updates

* Split BlobPublicAccess

* Split ExpiryTimeHeader

* JS: use string type for submitBatch request body

* JS: Rename eTag => etag

* JS: rename CreationTimeResponseHeader.creationTime to createdOn

* JS: update emitter output directory for TypeScript to storage-blob

* JS: enable-storage-compat

* JS: add headerCollectionPrefix client option for x-ms-meta header

* clean up client.tsp

* JS: do not rename immutabilityPolicyExpiry

* python -> config changes

* leaving immutability as required for python to keep x-ms-version

* csharp: more customizations (#41129)

* python -> not supported includerootslash

* update client.tsp due to merge with rust base branch

* csharp customizations to reduce custom code (#41532)

* add etag types for go

* fix BlobPublicAccessResponseHeader name

* remove go-generate

* emit slash option for csharp (#41620)

* remove alttrype accesspolicy python

* scope client initialization decorators

* clientOption for python emptyUrl

* JS: hide allowPermanentDelete in RetentionPolicy

* JS: bring back renames

* xml.Name CorsRule

* go signed identifiers

* blobiteminterla python

* go clientOption

* merge caused expiryTime to be expiresOn

* python -> etag

* go fixes

* clean up client.tsp

* add relevant suppressions

* spelling

* BlobDeleteTypeGo

* go lease renames

* go customizations

* go xml name for BlobPrefix

* python -> config

* clean up client.tsp

* regen the swagger

* split batch client for csharp (#42276)

* add suppressions

* format

* update suppressions

* add batch suppressions

---------

Co-authored-by: Libba Lawrence <[email protected]>
Co-authored-by: Jeremy Meng <[email protected]>
Co-authored-by: gracewilcox <[email protected]>
Co-authored-by: catalinaperalta <[email protected]>
Co-authored-by: Jorge Rangel <[email protected]>

* regen the swaggers

* update range header and regen swagger (#42487)

Co-authored-by: catalinaperalta <[email protected]>

* blobs: customize enums for c# (#42478)

* blobs: customize enums for c#

* consolidate

* go stg101

* split RehydratePriiority header

* csharp: fix RehydratePriorityParameter (#42611)

* set go to stg101

* BlobPrefix xml

* [Storage] `HttpRange` replacement, `Etag` model replacement (#42619)

* range alt type

* routes

* regen 2

* try again

* try again

* crate:: instead of fully quali

* stop going to String when it should be ETag'

* range

* compilation?

* regen after reinstall repo deps

---------

Co-authored-by: vincenttran-msft <[email protected]>
Co-authored-by: Vincent Tran <[email protected]>
Co-authored-by: catalinaperalta <[email protected]>
Co-authored-by: Jeremy Meng <[email protected]>
Co-authored-by: Grace Wilcox <[email protected]>
Co-authored-by: Nick Liu <[email protected]>
Co-authored-by: Sean McCullough <[email protected]>
Co-authored-by: Laurent Mazuel <[email protected]>
Co-authored-by: Libba Lawrence <[email protected]>
Co-authored-by: gracewilcox <[email protected]>
Co-authored-by: Jorge Rangel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data-plane Storage Storage Service (Queues, Blobs, Files) TypeSpec Authored with TypeSpec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants